// components/videos/videos.js
//获取应用实例
const app = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    mpUrl:'',//视频请求接口
    videoBox: [], // 存放所有video的盒子
    changeIndex:0,//当前视频索引
    isRuning:true,//视频初始是否播放
    windowHeight: app.windowHeight,//获取屏幕高度
    statusBarHeight: app.statusBarHeight,//获取导航栏高度
  },
// 数据请求,加载视频链接
requestUrl(reqUrl) {
  wx.showLoading({
      title: "加载中"
  });
  wx.request({
      url: reqUrl,
      method: "GET",
      success: res => {
          console.log(res.data);
          wx.hideLoading();
          let videoUrl="";
          if (res.data.mp4) {
               videoUrl="https:"+res.data.mp4;
          }else{
              let  newObj=(res.data).match(/"mp4": "(.*).mp4"/)[1];
              //   \/\/v.api.aa1.cn\/api\/api-video-gaoxiao\/video\/0063.mp4 官网api.aa1.cn 永久免费API
              videoUrl="https://"+newObj+".mp4"
            }
            console.log(videoUrl);
            this.data.videoBox.push(videoUrl);
            this.setData({
              videoBox:this.data.videoBox
            })
      }
  });
},
//划动切换
slide(e) {
  console.log(e);
  this.setData({
    changeIndex: e.detail.current
  })
  let Index=e.detail.current;
  if (Index==0) {
    // console.log("后一个暂停");
    let videoContext = wx.createVideoContext(`video${Index}`),//当前视频
    nextVideo= wx.createVideoContext(`video${Index+1}`);//下一个视频
    videoContext.play()
    nextVideo.stop();
  }else{
    // console.log("前后暂停");
    let videoContext = wx.createVideoContext(`video${Index}`),//当前视频
    proVideo= wx.createVideoContext(`video${Index-1}`),//上一个视频
    nextVideo= wx.createVideoContext(`video${Index+1}`);//下一个视频
    proVideo.stop();
    nextVideo.stop();
    videoContext.play()
  }
  // 滑到倒数第二个，继续加载
  let videoBoxLenth=this.data.videoBox.length-2,
  reqUrl=this.data.mpUrl;//接口地址
  if (Index>=videoBoxLenth) {
    wx.request({
      url: reqUrl,
      method: "GET",
      success: res => {
          // console.log(res.data);
          let videoUrl="https:"+res.data.mp4;
          this.data.videoBox.push(videoUrl);
          this.setData({
            videoBox:this.data.videoBox
          })
      }
  });
  }
},
// 暂停或开始
stopOrstart(e){
  // console.log("-------",e);
  let Index=e.currentTarget.dataset.index,
   isRuning=this.data.isRuning;
  let videoContext = wx.createVideoContext(`video${Index}`);
  // console.log("videoContext",`video${Index}`);
  if (isRuning) {
    videoContext.pause();
    this.setData({
      isRuning:false
    })
  }else{
    videoContext.play()
    this.setData({
      isRuning:true
    })
  }
},
// 长按下载
longTap(){
  // console.log("长按");
  let videoBox=this.data.videoBox,
  changeIndex=this.data.changeIndex;
  wx.showModal({
    title: '提示',
    content: '要下载该视频？',
    success (res) {
      if (res.confirm) {
        wx.showLoading({
          title: '下载中',
        })
        wx.downloadFile({
          url: videoBox[changeIndex], //仅为示例，并非真实的资源
          success (res) {
            if (res.statusCode === 200) {
              wx.saveVideoToPhotosAlbum({
                filePath: res.tempFilePath,
                success:function(res) {
                  wx.hideLoading();
                  wx.showToast({
                    title: '下载成功',
                  })
                }
              })
            }
          },
          fail(err){
            console.log(err);
                // 授权相册
                wx.getSetting({
                success(res) {
                    if (!res.authSetting['scope.writePhotosAlbum']) {
                    wx.authorize({
                    scope:'scope.writePhotosAlbum',
                    success() {
                    console.log('授权成功')
                }
                })
                }
                }
                })
          }
        })
      } else if (res.cancel) {
        console.log('用户点击取消')
      }
    }
  })
},



  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    wx.hideShareMenu()
    wx.setNavigationBarTitle({
      title: '短视频',
    })
    //请求的接口
    let requrl=decodeURIComponent(options.queryUrl);
    this.setData({
      mpUrl:requrl
    })
    // 执行3次请求
    for(let i=0;i<3;i++){
      this.requestUrl(requrl)
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    this.setData({
      videoBox:[]
    })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})